หัวใจของ อินเทอร์เฟซการประมวลผลแบบไม่เป็นเอกลักษณ์เพื่อความเข้ากันได้ (HIP) อยู่ที่ความสามารถในการสร้างภาพรวมเครื่องมือเฉพาะฮาร์ดแวร์ให้กลายเป็นอินเทอร์เฟซรันไทม์ C++ ที่เป็นหนึ่งเดียว โดยใช้แนวทาง แนวคิดแหล่งเดียวนักพัฒนาสามารถจัดการโค้ดเดียวกันที่เชื่อมโยงแบบไดนามิกกับเบ็กเอนด์ของ NVIDIA หรือ AMD ได้
1. การกำหนดฮาร์ดแวร์ตามเส้นทาง
สถาปัตยกรรมพึ่งพาสัญลักษณ์สภาพแวดล้อมเพื่อเป็นจุดอ้างอิงสำหรับระบบการสร้าง ซึ่งสัญลักษณ์เหล่านี้บอกให้กับ hipcc ตัวแคปซูลคอมไพเลอร์ว่าควรไปหาไลบรารีอุปกรณ์และไฟล์หัวเรื่องที่จำเป็นที่ไหน
- CUDA_PATH: จุดอ้างอิงหลักสำหรับชุดอุปกรณ์ NVIDIA (งานที่เกี่ยวข้องกับ NVCC/PTX)
- HIP_PATH: จุดอ้างอิงหลักสำหรับชุดอุปกรณ์ AMD ROCm (งานที่เกี่ยวข้องกับ Clang/LLVM)
2. การสร้างภาพรวมชั้นการประมวลผล
ความเข้ากันได้เกิดจากการแยกชั้นแอปพลิเคชันออกจากโครงสร้างไมโครอาร์กิเทคเจอร์ ตรรกะจะถูกแก้ไขในช่วงเวลาการสร้างโดยใช้ hipccซึ่งทำให้การดูแลรักษาโค้ดในระดับ $O(1)$ นำไปสู่ความเข้ากันได้กับฮาร์ดแวร์ในระดับ $O(N)$
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>